﻿/**
 * Created by arvin on 2017/3/28.
 */
var Mongoose = require('mongoose');
var Logger = require("pomelo-logger").getLogger("pomelo", "wechatMsg")

var Table={
    UID:{type:String,index:-1}, // 丁哲提供
    MotionDevice:{type:String,index: -1},// 二维码自带数据
    MotionName:{type:String,index:-1},// 二维码自带数据(如果都是Adm，就没有意义)
    WechatName:{type:String,index:-1},// 丁哲提供
    TimeLength:{type:Number,default:0},// 时间长度 单位是分钟丁哲提供
    TurnLength:{type:Number,default:0},// 圈数，暂时不考虑
    SKU:{type:String,index:-1},// 商品编号
    IsUsed:{type:Boolean,default:false},// 这个条消息是否用过
};

var SchemaOption={};
var Schema = new Mongoose.Schema(Table,SchemaOption);
Schema.set('redisCache','wechatMsg');
Schema.set('expire', 60000);

Schema.statics.insertItem= function(dev,cb)
{
    // 添加微信信息的时候，已经检查过这个设备可用,并且这个设备没有正在被使用然后将这条信息插入到表里，并且设置
    // 微信的数据,我们都用固定UID作为唯一ID

    this.collection.insert({
        UID:dev.UID, // 丁哲提供
        MotionDevice:dev.MotionDevice,// 二维码自带数据
        MotionName:dev.MotionName,// 二维码自带数据(如果都是Adm，就没有意义)
        WechatName:dev.WechatName,// 丁哲提供
        TimeLength:dev.TimeLength,// 时间长度 单位是分钟丁哲提供
        TurnLength:dev.TurnLength,// 圈数，暂时不考虑
        SKU:dev.SKU,// 商品编号
        IsUsed:false// 这个条消息是否用过
    },function (err,result) {
        if(err)
            console.log("微信数据插入失败");
        else
        {
            console.log("微信数据插入成功");
            cb(result);
        }
    })
}

// 这里有问题，最好是列表形式,或者能拿到UID
Schema.statics.SearchTarDevice = function (dev, cb) {

    this.findOne({MotionDevice:dev.MotionDevice,IsUsed:dev.IsUsed},
        function (err,d) {
            if(err|| !d)
                 cb(null);
            else
                cb(d);
        })
}

Schema.statics.SearchSKU = function (sku,cb) {

    this.findOne({SKU:sku},function (err,d) {

        if(err|| !d)
        {
            cb(false);// 表示没找到
        }
        else
        {
            cb(true);
        }
    });
}

Schema.statics.UpdateUsedData=function(dev)
{
    this.findOne({_id:dev._id},
        function (err,d) {
            if(err|| !d)
            {
                console.warn("刷新状态出错");
                return;
            }

            d.IsUsed = true;
            d.save(function (e) {
                 if (e||!d) {
                    console.log("保存使用状态失败");
                } else
                {
   
                    console.log("保存使用状态成功");
                }
            })
        })
}

module.exports = {
    "name": "wechatMsg",
    "schema": Schema
};